package com.asa.cc.jmeter;

public class D {

	/**
	 * 
	 * Jmeter运行模式
			Jmeter运行方式分为两种:
			●GUI:视窗图形化界面运行
			GUI方式由于可视化，更加直观，方便控制测试计划启停，实
			时查看运行状况，比如测试结果，运行线程数等。但当大并发测
			试情况下，该方式往往会导致负载机资源紧张，对性能测试结果
			造成影响
			●CLI:命令窗口 运行
			实际运行Jmeter测试计划时，推荐CLI模式，对于负载测试,
			必须在此模式下运行Jmeter,以获得最佳的测试结果

	 * 
	 * 
	 * 
	 * Jmeter CLI模式
			CLI模式没有Jmeter图形界面，在命令窗口通过命令行来运行
			场景。Jmeter可视化界面及监听器动态展示结果比较消耗负载
			机资源，在大并发情况下，GUI模式会导致负载机资源紧张，
			对性能测试结果造成影响，影响负载量的生成
			Jmeter CLI命令如下，两种方式都可以:
			●java -jar %JMETER_ HOME%\bin\ApacheJMeter.jar -n -t testplan.jmx -r -| result.jtl
			●
			%JMETER_ HOME%\bin\jmeter -n -t testplan.jmx -| result.jtl

	 * 
	 * 
	 * Jmeter CL I模式命令参数解释
			●-n: 非GUI方 式运行
			●-t:指定运行的测试脚本地址与名称，可以是相对路径和绝对路径
			●-V:查看版本
			●-p :指定读取JMETER属性文件
			●-| :记录测 试结果到文件
			●-S: 以服务器方式运行，启动Agent
			●-H:设置代理， 填写代理IP
			●-P:设置代理端 口
			●
			-u:代理账号
			●-a:代理口令

	 * 
	 * 
	 * JMeter分布式运行
			分布式运行是用Jmeter
			控制机控制远程多台负
			载机来产生负载
			Jmeter控制机与远程负
			载机是通过RMI方式通
			信的，在负载机上运行
			Agent程序(jmeter-
			server)

	 * 
	 * JMeter控制机和负载机
			●控制机
			运行JMeter GUI的系统，用于控制
			测试
			●负载机
			运行jmeter-server的系统，从控制
			机接收命令并将请求发送到目标测试系
			统
			●目标测试系统
			计划进行压力测试的服务，如Web服
			务器

	 * 
	 * 
	 * 配置JMeter分布式测试注意事项
		●操作系统上的防火墙关闭或已打开正确的端口
		● Jmeter控制机和所有负载机都位于同一子网中，确保Jmeter
		负载机可以访问Jmeter控制机
		●确保所有系统上使用相同版本的JMeter和Java
		●设置RMI SSL配置或将其禁用

	 * 
	 * 
	 * JMeter分布式配置
			在控制机上，到jmeter / bin目录下
			●编辑jmeter.properties文件
			编辑行remote_hosts = 127.0.0.1
			●添加负载机IP地址。例如， 在192.168.0.10， ..，. 192.168.0.15
			上运行的Jmeter负载机，则该条目将如下所示:
			remote_ hosts =192.168.0.10,192.168.0.11,192.168.0.12,192.168.0.13,192.1
			68.0.14
			●启动Jmeter
		
		里面有不少配置，自己看，比如SSL
	 * 
	 * 
	 * 
	 * 
	 * JMeter分布式配置
			●在负载机上，到jmeter / bin 目录下并执行jmeter-
			server. bat (Unix. 上的jmeter-server)

	 * 
	 * 
	 * JMeter分布式配置
			●开始负载测试前，检查JMeter负载机系统是否正常运行，打开
			控制机_上的jmeter.log，可在 日志中看到以下内容:
			2020-01-02 19:20:55,486 INFO o.aj.e.DistributedRunner: Configuring remote
			engine: 172.21.248.29
			2020-01-02 19:21:03,109 INFO o.a.j.e.DistributedRunner: Starting distributed test
			with remote engines: [172.21 .248.29] @ Thu Jan 02 19:21:03 CST 2020 
			(1577964063109)
			2020-01-02 19:21:03,109 INFO o.a.j.e.ClientMeterEngine: running clientengine run
			method
			2020-01-02 19:21:03,111 INFO o.a.j.e.u.CompoundVariable: Note: Function class
			names must contain the string: '.functions.'

	 * 
	 * 
	 * 
	 * 控制机和负载机SSL配置
			●从JMeter 4.0开始，RMI的默认 传输机制使用SSL。SSL
			需要密钥和证书才能起作用，如果启用SSL,需要配置控制
			机和负载机的SSL密钥
			●%Jmeter_home%/bin 中,包含用于生成名为rmi的密钥
			(及其相应的证书)的密钥库的脚本create-rmi-
			keystore. bat
			运行上面脚本，生成rmi_keystore.jks keystore在bin 目
			录下

	 * 
	 * 
	 * 
	 * Jmeter GUI客户端启动Jmeter负载机
			●使用脚本" bin / jmeter.bat"启动GUI客户端。对于UNIX,
			使用脚本" bin / jmeter”
			●Run菜单包含两个新的子菜单:“Remote Start"和" Remote
			Stop"

	 * 
	 * 
	 * 
	 * Jmeter C! I模式启动Jmeter负载机
		●
		Jmeter GUI模式仅应用于调试测试计划，应从Jmeter CLI模
		式(命令行)启动在远程服务器上启动执行测试。命 令为:
		jmeter -n -他script.jmx -r
		或|
		jmeter -n -t script.jmx -R serverl, server2...
	 * 
	 * 
	 * 
	 * 
	 * JMeter分布式执行示例
			●添加负载机在Jmeter.properties中
				
				控制机
				remote_hosts
				remote_hosts=localhost:1099,localhost:2010
				server.rmi.ssl.disable=true	不想配ssl就设置它

				负载机
				server_port=1234		配一下端口号
				server.rmi.ssl.disable=true	不想配ssl就设置它
				
				

			●配置RMI Keystore在Jmeter或user properties 文件中
			●启动Jmeter 负载机
				./jmeter-server -Djava.rmi.server.hostname=192.168.0.103
				
				

			
			●启动Jmeter 控制机
				用案例来测试
				./jmeter -n -t ../sample/soap.jmx -R 192.168.0.103:1234 -l remote_soap.1og
				
				也可以用ui界面来远程连接，我认为这种方式更好
				
			●执行测试计划在控制机上
				
				
			
			●查看日志显示测试计划被派发到负载机.上执行
			
		
		
		
		
	 * 
	 * 
	 * 
	 * 
	 * 
	 * 
	 * 
	 * 
	 */
	
}
